namespace CSharpPro._1016;

public class Six1
{
    //作业1
    //键盘输入三个整数x、y、z，请把这三个数由小到大输出
    public void TestPrint1()
    {
        Console.WriteLine("键盘输入三个整数x、y、z，请把这三个数由小到大输出.");
        Console.WriteLine("请输入第一个数：");
        int x=Convert.ToInt32(Console.ReadLine());
        Console.WriteLine("请输入第二个数：");
        int y=Convert.ToInt32(Console.ReadLine());
        Console.WriteLine("请输入第三个数：");
        int z=Convert.ToInt32(Console.ReadLine());
        int[] a = { x, y, z };
        //升序
        Array.Sort(a);
        //逆序
        Array.Reverse(a);
        Console.WriteLine(string.Join(",", a));
    }
    //作业2
    //打印出1-100之间所有不是7的倍数和不包含7的数字,并求和。
    public void TestPrint2()
    {
        Console.WriteLine("打印出1-100之间所有不是7的倍数和不包含7的数字,并求和。");
        int sum = 0;
        for (int i = 1; i <= 100; i++)
        {
            if (i % 7 != 0 && i % 10 != 7 && i / 10 != 7)
            {
                sum += i;
                Console.WriteLine(i);
            }
        }
        Console.WriteLine(sum);
    }
    //作业3
    //打印九九乘法表
    public void TestPrint3()
    {
        Console.WriteLine("打印九九乘法表");
        for (int i = 1; i < 10; i++)
        {
            for (int j = 1; j <= i; j++)
            {
                Console.Write(i+"x"+j+"="+i*j+"\t");
            }
            Console.WriteLine();
        }
    }
    //作业4
    //一个数如果恰好等于它的所有真因子（即除了自身 外的所有因数）之和，这个数就称为"完数"。请编程求出1000以内的所有完数。
    public void TestPrint4()
    {
        Console.WriteLine("一个数如果恰好等于它的所有真因子（即除了自身 外的所有因数）之和，这个数就称为\"完数\"。请编程求出1000以内的所有完数。");
        for (int i = 1; i < 1000; i++)
        {
            int sum = 0;
            for (int j = 1; j <= i; j++)
            {
                if (i % j == 0 && i!=j)
                {
                    sum += j;
                }
            }
            if (sum == i)
            {
                Console.WriteLine(i);
            }
        }
    }
    //作业5
    //键盘录入一个正整数，请求：1.它是几位数？2.逆序打印出各位数字。
    public void TestPrint5()
    {
        Console.WriteLine("键盘录入一个正整数，请求：1.它是几位数？2.逆序打印出各位数字。");
        Console.WriteLine("请输入一个整数：");
        int num=Convert.ToInt32(Console.ReadLine());
        int div = 10;
        int i = 1;
        for (i = 1; num / div !=0; i++)
        {
            div *= 10;
        }
        Console.WriteLine("它是"+i+"位数");
        
        for (int j = 1; j <= i; j++)
        {
            Console.Write((int)(num % Math.Pow(10, j)/ Math.Pow(10, j-1)));
            if (j < i)
            {
                Console.Write(",");
            }
        }
    }
}